lexer grammar xmlLexer;

options {
  language = Java;
}


@header {
  package PL.practica10;
}

@members{
  boolean identificador = false;
  boolean dentroEtiqueta = false;
  }
  
BIBLIO : 'biblioteca';
LIB : 'libro';
TIT: 'titulo';
AUT : 'autor';
EDIT : 'editorial';
COMENTARIO: '<!--' (options {greedy=false;}:.)* '-->' {skip();};
fragment NUEVA_LINEA: '\r\n';
BLANCO: (' '|'\t'|NUEVA_LINEA) {skip();};
fragment DIGITO: '0'..'9';
fragment CHAR:  'a'..'z' |'A'..'Z' | '_' ;
fragment SIMBOLOS :  '&' | ';' | '.';
NUMERO: (DIGITO)+('.'(DIGITO)+)?;
ID : CHAR+ ;
IGUAL : '=';
ABRIR_ANGULO : '<' {dentroEtiqueta=true;};
CERRAR_ANGULO :'>' {dentroEtiqueta=false;};
ANGULO_SLASH : '</' {dentroEtiqueta=true;};
CADENA :  '"' (options {greedy=false;} : .)* '"';
TEXTO: {!dentroEtiqueta}? => CHAR (~('<'))+;
